package com.woniuxy.yoga.progress.service;

import com.woniuxy.yoga.progress.dao.model.Lifecard;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.yoga.progress.model.param.CreateLifeCardParam;

/**
 * <p>
 * 终身卡流程表 服务类
 * </p>
 *
 * @author 韦用文,刘存益,郎腾霄
 * @since 2023年11月28日
 */
public interface LifecardService extends IService<Lifecard> {

    /**
     * 通过用户id查询终身卡进度
     * @param userId 用户id
     * @return Lifecard
     */
    Lifecard getByUserId(Integer userId);

    /**
     * 创建终身卡进度表
     * @param param 创建终身卡进度表参数
     */
    void createLifeCard(CreateLifeCardParam param);

    /**
     * 转让终身卡
     * @param transUserId 转入id
     * @param userId 转出id
     */
    void transformLifeCard(Integer transUserId, Integer userId);

    /**
     * 终身卡次数加一
     * @param lifecardId 终身卡id
     */
    void addLifeCardCount(Integer lifecardId) throws Exception;

    /**
     * 终身卡次数减1
     * @param lifecardId 终身卡id
     */
    void reduceLifeCardCount(Integer lifecardId) throws Exception;
}
